/*
 * OpenLidDemo.h
 *
 *  Created on: 10 Nov 2012
 *      Author: hopey
 */

#ifndef OPENLIDDEMO_H_
#define OPENLIDDEMO_H_
#include <common-gtk.h>
#include <gtkmm/main.h>
#include <gtkmm/window.h>
#include <gtkmm/widget.h>

namespace openlid {

class OpenLidDemo : public Retainer<Widget>{
public:
	OpenLidDemo(int argc, char** argv);
	virtual ~OpenLidDemo(){};
	int start();
protected:
	virtual unique_ptr<Gtk::Window> create_components() =0;
//	void retain(Widget* w_ptr) {
//		retain(shared_ptr<Widget>(w_ptr));
//	}
//	void retain(shared_ptr<Widget> w_ptr) {
//		widget_retainer.push_back(w_ptr);
//	}
private:
	Gtk::Main kit;
	//Gtk::Window win;
//	vector<shared_ptr<Widget>> widget_retainer;
};

} /* namespace openlid */
#endif /* OPENLIDDEMO_H_ */
